Aspects of the present invention relate, in general, to processing within a computing environment, and more particularly, to managing threads within a multi-threading application server environment, such as an enterprise middleware environment.
A thread typically exists within a process launched as the result of a request, such as an application request. A process may have multiple threads that share resources, such as memory. A thread is considered the smallest unit of processing that can be scheduled by an operating system. A thread can execute on a processor with no other threads executing thereon or on a processor with other threads. In the case where the thread is the only thread executing on the processor, the processor is said to be executing in single thread mode. However, in a case where the thread is executing with other threads, the processor is said to be in simultaneous multi-threading (SMT) mode.
In simultaneous multi-threading mode, hardware resources are shared among multiple software threads executing on a machine. Each thread appears to have its own complete set of architecture hardware. Although SMT provides an efficiency of hardware, allowing multiple threads to share resources available may result in a performance cost to the individual threads depending on the environment.